package appgrafica1;

import java.awt.Graphics;

public class ArbolBinario {

    public NodoArbol raiz;

    public ArbolBinario()
    {
        raiz=null;
    }
    public void InsertarNodoArbol(int insertarValor, int valorHeuristico)
    {
        if(raiz==null)
            raiz=new NodoArbol(insertarValor,valorHeuristico);
        else
            raiz.InsertarNodo(insertarValor, valorHeuristico);
    }
    public boolean Busqueda(ArbolBinario tree,int d)
    {
     if(tree == null)
         return false;
     else if(tree.raiz.dato>d)
         return tree.raiz.HijoIzq.BusquedaNodo(d);
     else if(tree.raiz.dato<d)
         return tree.raiz.HijoDer.BusquedaNodo(d);
     else
         return true;
    }

    public NodoArbol BuscarNodo(ArbolBinario tree,int d)
    {
     if(tree == null)
         return null;
     else if(tree.raiz.dato==d)
         return tree.raiz;
     else if(tree.raiz.dato>d)
         return tree.raiz.BuscarNodoArbol(tree.raiz.HijoIzq,d);
     else if(tree.raiz.dato<d)
         return tree.raiz.BuscarNodoArbol(tree.raiz.HijoDer,d);
     return null;
    }

    public void DibujarArbol(Graphics g,NodoArbol inicio,int x,int y)
    {

        if(inicio != null)
        {
            inicio.DibujarNodo(g, x, y);
            DibujarArbol(g,inicio.HijoIzq,x-70,y+40);
            DibujarArbol(g,inicio.HijoDer,x+80,y+40);
        }
    }
}
